package models;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import play.db.jpa.GenericModel;

@Entity
@Table(name="cliente")
public class Cliente extends GenericModel {
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	private String nome;
	
	private String cpf;
	
	private String telefone;
	
	private String login;
	
	private String senha;
	
	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_endereco")
	private Endereco end;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_dadosB")
	private DadosBancarios dadosB;
	
	@OneToMany(mappedBy="cliente", cascade=CascadeType.ALL)
	private List<Aposta> apostas;
	
	public Cliente() {
		this.cpf = "";
		this.nome = "";
		this.login = "";
		this.senha = "";
		this.end = null;
		this.dadosB = null;
		this.telefone = "";
		this.apostas = new ArrayList<Aposta>();
	}

	public Cliente(String nome, String cpf, String telefone,
			String login, String senha, Endereco end, DadosBancarios dadosB) {
		super();
		this.nome = nome;
		this.cpf = cpf;
		this.telefone = telefone;
		this.login = login;
		this.senha = senha;
		this.end = end;
		this.dadosB = dadosB;
	}



	public Endereco getEnd() {
		return end;
	}

	public void setEnd(Endereco end) {
		this.end = end;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public DadosBancarios getDadosB() {
		return dadosB;
	}

	public void setDadosB(DadosBancarios dadosB) {
		this.dadosB = dadosB;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	
	public String getLogin() {
		return login;
	}

	public void setLogin(String login) {
		this.login = login;
	}

	public String getSenha() {
		return senha;
	}

	public void setSenha(String senha) {
		this.senha = senha;
	}
}
